home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tech Arsenal 1
/
Tech Arsenal (Arsenal Computer).ISO
/
tek-05
/
swapsize.zip
/
SWAPSIZE.CMD
< prev
next >
Wrap
OS/2 REXX Batch file
|
1992-04-06
|
5KB
|
210 lines
/*
* OS/2 REXX Program: SWAPSIZE.CMD
* Version: 2.0
*
* Written by: Bob Mahan
* November, 1991
*
* Description: This is a simple REXX program that polls the OS/2
* Swapper file, the drive it resides on, and displays
* the results in an OS/2 window. The polling occurs
* every second by default.
*
* Command Syntax>> SWAPSIZE -.--------------------.-------------> <
* `- n -.------------.-'
* `- drive(s) -'
*
*
* Arguments: n = number of seconds to delay between querys
* default of 1 display every second
* drive(s) = one or more drives (x:) to monitor
* default of drive with SWAPPER.DAT
*
* Notes: This REXX program has been heavily commented and
* performance improvements can be gained by removing
* the comments.
*
* Modifications: 4/92 - Added display option for additional drives
* to be monitored
*/
/*
* Initialize break processing and REXX functions
*/
SIGNAL ON HALT NAME EndIt
CALL RxFuncAdd 'SysDriveInfo', 'RexxUtil', 'SysDriveInfo'
CALL RxFuncAdd 'SysSleep', 'RexxUtil', 'SysSleep'
/*
* Initialize Program
*/
delay = 1 /* default sleep time in seconds */
suffix = 0 /* display 'M' suffix of sizes (0=off,1=on) */
swapfile = 'D:\TEMP\SWAPPER.DAT'
numdrvs = 1
PARSE VAR swapfile scandrv.numdrvs '\' garbage
/*
* Parse command line for delay override argument
*/
IF ARG() <> 0 THEN
DO
PARSE UPPER ARG delay scandrv.1 scandrv.2 scandrv.3 scandrv.4 scandrv.5
IF scandrv.1 = '' THEN
DO
numdrvs = 1
PARSE VAR swapfile scandrv.numdrvs '\' garbage
END
ELSE
DO n = 1 TO 5
IF scandrv.n <> '' THEN
DO
numdrvs = n
IF LENGTH(scandrv.n) = 1 THEN scandrv.n = scandrv.n||':'
END
END
END
/*
* Initialize ANSI colors
*/
'@ANSI ON > NUL'
color.time = '1B'x || "[37m" || '1B'x || "[40m"
color.ok = '1B'x || "[32m" || '1B'x || "[40m"
color.warn = '1B'x || "[33m" || '1B'x || "[40m"
color.bad = '1B'x || "[31m" || '1B'x || "[40m"
/*
* Verify that Swap file exists
*/
IF STREAM(swapfile,'C','QUERY EXIST') <> swapfile THEN
DO
SAY color.bad
SAY 'ERROR: ' swapfile ' not found!'
SAY color.time
EXIT
END
/*
* Begin infinite loop to query Swap file
*/
DO FOREVER
/*
* Query Swap file for size
*
* Based on the size of the Swap file, display the size
* in an appropriate color. The size ranges are subjective
* and could be modified to better suit various users
* requirements and characteristics.
*
* GREEN < 10mb swapper
* YELLOW < 20mb swapper
* RED >= 20mb swapper
*/
msg = color.time
size = STREAM(swapfile,'C','QUERY SIZE')
IF size >= 1000000 THEN
DO
size = size / 1000000.0
IF suffix = 1 THEN scale = 'M '
ELSE scale = ' '
digits = 0
SELECT
WHEN size >= 20.0 THEN msg = msg || color.bad
WHEN FORMAT(size,,1) >= 10.0 THEN msg = msg || color.warn
OTHERWISE
DO
msg = msg || color.ok
digits = 1
END
END
END
ELSE
DO
size = size / 1000
scale = 'K '
digits = 0
msg = msg || color.bad
END
msg = msg || FORMAT(size,,digits)||scale
/*
* Query Drive(s) for free space
*
* Based on the amount of disk space remaining, display the
* free space in an appropriate color. The ranges are not
* very subjective, but could be modified to better suit
* various users requirements and characteristics.
*
* GREEN >= 10mb free space remaining
* YELLOW > 2mb free space remaining
* RED <= 2mb free space remaining
*/
DO n = 1 to numdrvs
swapdrv = scandrv.n
msg = msg || color.time||swapdrv
PARSE VALUE SysDriveInfo(swapdrv) WITH drv size total label
IF size >= 1000000 THEN
DO
size = size / 1000000.0
IF suffix = 1 THEN scale = 'M '
ELSE scale = ' '
digits = 1
SELECT
WHEN size <= 2.0 THEN msg = msg || color.bad
WHEN FORMAT(size,,1) <= 10.0 THEN msg = msg || color.warn
OTHERWISE
DO
msg = msg || color.ok
digits = 0
END
END
END
ELSE
DO
size = size / 1000
scale = 'K '
digits = 0
msg = msg || color.bad
END
msg = msg || FORMAT(size,,digits)||scale
END
/*
* Current time
*/
msg = msg||color.time||' '||TIME()
/*
* Display message and delay
*/
SAY msg
CALL SysSleep delay
END
/*
* Break processing section
*/
EndIt: SAY color.time
EXIT